var CryptoJS = require('crypto-js');

LB.HELPER.AES = {};

//MD5加密方法
LB.HELPER.MD5 = (str)=>{
    return CryptoJS.MD5(str).toString().toUpperCase()
}

/**
 * AES加密方法
 * @param key 加密key
 * @param iv       向量
 * @param data     需要加密的数据
 * @returns string
 */
LB.HELPER.AES.encrypt = function (k,i,data) {
    let key = CryptoJS.enc.Utf8.parse(k)
    let iv = CryptoJS.enc.Utf8.parse(i)
    let srcs = CryptoJS.enc.Utf8.parse(data);
    let encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7});
    return encrypted.toString()
};
 
/**
 * AES解密方法
 * @param key      解密的key
 * @param iv       向量
 * @param crypted  密文
 * @returns        string
 */
 LB.HELPER.AES.decrypt = function (k,i,crypted) {
    let key = CryptoJS.enc.Utf8.parse(k)
    let iv = CryptoJS.enc.Utf8.parse(i)
    let decrypt = CryptoJS.AES.decrypt(crypted, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7});
    let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
    return decryptedStr.toString();
}